Banner image for this article, an unsplash image with coding theme

Jibé Barth

🇫🇷 Web developer

🇫🇷 Gnome / Chrome / Dark mode

Published Apr 18, 2020

Sur GNOME, j'ai ajouté l'extension DayNight qui permet de passer d'un theme sombre a light d'un clic.

Contrairement a Firefox, chrome ne prend pas en compte le theme mode de l'utilisateur à la volée.

Chrome n'interprete pas le color-prefers-scheme correctement, même si le theme est configuré sur Dark.

Pour lancer chrome en mode dark,

  google-chrome-stable --force-dark-mode

Mais dans ce cas précis, on ne tiens toujours pas compte du theme utilisateur, le color-prefers-scheme est bien setté sur dark, meme si j'utilise un theme light.

Pour gérer ça j'ai rajouté dans mon fichier bash_functions.sh la fonction suivante :

isDarkTheme() {
        theme="$(gsettings get org.gnome.desktop.interface gtk-theme)";
        if [[ "$theme" =~ "dark" ]]; then
                return;
        fi
        false;
}

Puis, j'ai copié le fichier .desktop pour lancer google dans mon dossier personnel :

cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications/google-chrome.desktop

Enfin, j'ai altéré les Exec dedans pour utiliser --force-dark-mode en fonction du theme courant:

# ~/.local/share/applications/google-chrome.desktop

#Exec=/usr/bin/google-chrome-stable %U 
Exec=bash -c 'source bash_functions.sh;if isDarkTheme; then /usr/bin/google-chrome-stable %U --force-dark-mode; else /usr/bin/google-chrome-stable %U; fi;'

Inconvénient : Si je change de thème, je suis tout de même obligé de relancer chrome pour appliquer changer en fonction le dark-mode.